package wcg;


public class LinerInterpolate {
	private double X0=0.0;
	private double Y0=0.0;
	private double X1=0.0;
	private double Y1=0.0;
	int mode = 0;
	/**
	 * 2点を通る直線の補間
	 * x1-x0=0は禁止
	 * @param x0
	 * @param y0
	 * @param x1
	 * @param y1
	 */
	LinerInterpolate(double x0,double y0,double x1,double y1){
		X0=x0; 
		Y0=y0;
		X1=x1;
		Y1=y1;
		mode = 0;
	}
	/**
	 * 原点と1点を通る直線の補間
	 * x0=0は禁止
	 * @param x0
	 * @param y0
	 */
	LinerInterpolate(double x0,double y0){
		X0=x0; 
		Y0=y0;
		mode = 1;
	}
	/**
	 * 補間された点を求める
	 * @param x
	 * @return
	 */
	public double get(double x){
		if(mode==1){
			return Y0 + x -X0;
		}
		return Y0 + (Y1-Y0)/(X1-X0)*(x-X0);
	}
}
